#pragma once

#include "Ogre.h"
#include "OIS/OIS.h"
#include "GameLoop.h"

class GameInputListener :	public Ogre::FrameListener, 
							public Ogre::WindowEventListener
{
public:
	GameInputListener(Ogre::RenderWindow*, Ogre::Camera*, Ogre::SceneManager*);
	~GameInputListener(void);

	virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
	virtual void windowResized(Ogre::RenderWindow* rw);
	virtual void windowClosed(Ogre::RenderWindow* rw);

	void startOIS();

private:
	Ogre::RenderWindow* mWindow;
	Ogre::Camera*       mCamera;
	Ogre::SceneManager*	mSceneMgr;

    OIS::InputManager*  mInputManager;
    OIS::Mouse*         mMouse;
    OIS::Keyboard*      mKeyboard;

	GameLoop			*gameLoop;
};
